/**
 * @author 史鑫鑫
 * @description 群组相关接口合集
 * @date 2021-03-06
 * @modefied 史鑫鑫
 */
import request from '@/utils/request'

/**
 * 创建群组
 * @param {String} groupName 分组名
 */
export function groupCreate (groupName) {
  return request({
    url: `/c/api/v2/contact/group/${groupName}`,
    method: 'post'
  })
}

/**
 * 获取全部群组
 */
export function groupList () {
  return request({
    url: '/c/api/v2/contact/group',
    method: 'get'
  })
}

/**
 * 获取群组全部成员信息
 * @param {String} groupId 群组id
 */
export function groupMembers (groupId) {
  return request({
    url: '/c/api/v2/contact/group/members',
    method: 'get',
    params: {
      groupId
    }
  })
}

/**
 * 邀请好友入群
 * @param {String} groupId 群主id
 * @param {Array} groupMembersId 好友id列表
 */
export function groupMembersEnter (groupId, groupMembersId) {
  return request({
    url: `/c/api/v2/contact/group/members/${groupId}`,
    method: 'post',
    data: {
      groupMembersId
    }
  })
}

/**
 * 更新群组内容
 * @param {String} groupId 群id
 * @param {String} groupAvatar 群头像
 * @param {String} groupName 群名称
 * @param {String} groupIntroduction 群介绍
 * @param {String} groupAnnouncement 群公告
 */
export function groupUpdate (groupId, groupAvatar, groupName, groupIntroduction, groupAnnouncement) {
  return request({
    url: '/c/api/v2/contact/group/info',
    method: 'put',
    data: {
      groupId,
      groupAvatar,
      groupName,
      groupIntroduction,
      groupAnnouncement
    }
  })
}

/**
 * 解散群组
 * @param {String} groupId 群id
 */
export function groupDismiss (groupId) {
  return request({
    url: `/c/api/v2/contact/group/dismiss/${groupId}`,
    method: 'put'
  })
}

/**
 * 踢多人
 * @param {String} groupId 群主id
 * @param {Array} groupMembersId 好友id列表
 */
export function groupMembersDelete (groupId, groupMembersId) {
  return request({
    url: `/c/api/v2/contact/group/members/${groupId}`,
    method: 'delete',
    data: {
      groupMembersId
    }
  })
}

/**
 * 退出群组
 * @param {String} groupId 群主id
 * @param {function} cbOk 成功回调
 * @param {function} cbErr 失败回调
 */
export function groupExit (groupId) {
  return request({
    url: `/c/api/v2/contact/group/exit/${groupId}`,
    method: 'delete'
  })
}
